﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EGuayas.Web.Resources;
using EntGuayasSLA.BL;

using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;
using EGuayas.Web.Licenciamiento.admin.tabs;

namespace EGuayas.Web.EGlobal
{
    public partial class pgJefeDepart : pgBase
    {
     
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {                
                if (!X.IsAjaxRequest)
                {
                    string rolCodigo = (GetSessionUsuario.UsuarioRolCodigo == Valores.Codigo_Rol_JefeDepartamentalLicencimiento) ? Constantes.Licenciamiento : Constantes.Auditoria;
                    this.hdGlobalJefatura.SetValue(rolCodigo); 

                }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        
      
        [DirectMethod]
        public RecepcionProcesoLista BindDataEnviados()
        {
            try
            {
                RecepcionProcesoCriteria criteria = RecepcionProcesoCriteria.NewRecepcionProcesoCriteria();
                criteria.JefaturaCode = this.hdGlobalJefatura.Text;
                criteria.Estado         = Valores.Codigo_CHAR_Estado_RecepcionProc_S;
                criteria.IfListaTecnico = true;
                return RecepcionProcesoLista.GetRecepcionProcesoLista(criteria);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return null;
        }
        //         
        [DirectMethod]
        public RecepcionProcesoLista BindDataProcesos()
        {
            try
            {
                RecepcionProcesoCriteria criteria = RecepcionProcesoCriteria.NewRecepcionProcesoCriteria();
                criteria.JefaturaCode = this.hdGlobalJefatura.Text;
                criteria.Estado = Valores.Codigo_CHAR_Estado_RecepcionProc_Env ;
                criteria.IfListaTecnico = false;
                return RecepcionProcesoLista.GetRecepcionProcesoLista(criteria);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return null;
        }
        [DirectMethod]
        public RecepcionProcesoLista BindDataDevueltos()
        {
            try
            {
                RecepcionProcesoCriteria criteria = RecepcionProcesoCriteria.NewRecepcionProcesoCriteria();
                criteria.JefaturaCode = this.hdGlobalJefatura.Text;
                criteria.Estado = Valores.Codigo_CHAR_Estado_RecepcionProc_N;
                criteria.IfListaTecnico = true;
                return RecepcionProcesoLista.GetRecepcionProcesoLista(criteria);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return null;
        }
        [DirectMethod]
        public void ShowAllFiles(string idFase, string idModulo)
        {
            ucInfoDocumentos.Show(idFase, idModulo.Replace("DOC", "INFDOC"));

        }
        [DirectMethod(IDAlias = "pgJefeDep")]
        public Boolean ShowTarea(string gridJson)
        {
            try
            {
                var dataItem = JSON.Deserialize<Dictionary<string, string>>(gridJson);
                wucTareas obj = (wucTareas)this.uc_tareas_J001.UserControls[0];
                //Wuc_Init(string IdFase,string IdTabla,string Page,string Tabla)
                obj.InitWuc(dataItem["FaseId"], dataItem["TablaId"], dataItem["Tabla"], dataItem["JefeturaCodigo"],dataItem["ExpedienteId"]);
                this.winProceso.Show();
                return (true);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return (false);
        }
       
        [DirectMethod(IDAlias = "pgJefeDep")]
        public void UpdateEstado(string idRecep)
        {
            try
            {
                Guid id = Guid.Parse(idRecep);
                RecepcionProceso objRecep = RecepcionProceso.GetEditableRoot(id);
                objRecep.FechaTec = DateTime.Now;
                objRecep.Estado   = Valores.Codigo_CHAR_Estado_RecepcionProc_N;
                objRecep.Save();
                gpDocumentosLoad.GetStore().Reload();
                gpDevueltos.GetStore().Reload();
                X.Msg.Show(new MessageBoxConfig
                {
                    Buttons = MessageBox.Button.OK,
                    Icon = MessageBox.Icon.INFO,
                    Title = Titulos.TituloAviso,
                    Message = "Asignación creada"
                });
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
           
        }
        protected void btnAceptar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                wucTareas obj = (wucTareas)this.uc_tareas_J001.UserControls[0];
                if (obj.GetCountTareas() != 0)
                {
                    Guid id = Guid.Parse(e.ExtraParams["Id"]);
                    RecepcionProceso objRecep = RecepcionProceso.GetEditableRoot(id);
                    objRecep.FechaTec = DateTime.Now;
                    objRecep.Estado = Valores.Codigo_CHAR_Estado_RecepcionProc_S;
                    objRecep.Save();
                    gpDocumentosLoad.GetStore().Reload();
                    gpEnviados.GetStore().Reload();
                    X.Msg.Show(new MessageBoxConfig
                    {
                        Buttons = MessageBox.Button.OK,
                        Icon = MessageBox.Icon.INFO,
                        Title = Titulos.TituloAviso,
                        Message = "Asignación creada"
                    });
                }
                else
                {
                    X.Msg.Show(new MessageBoxConfig
                    {
                        Buttons = MessageBox.Button.OK,
                        Icon = MessageBox.Icon.ERROR,
                        Title = Titulos.TituloAviso,
                        Message = "Se require que asigne tareas"
                    });
                
                
                }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }

        }

       
    }
}